Multi-color flash with image post-processing

ABSTRACT

Multi-color flash with image post-processing that uses a camera device with a multi-color flash and implements post-processing to generate images is described. In one aspect, the multi-color flash with image post-processing may be implemented by a controller configured to control a camera and flashes of at least two different colors. The controller may be configured to cause the camera to acquire a first image of a scene while the scene is being illuminated with the first flash but not the second flash, then cause the camera to acquire a second image of the scene while the scene is being illuminated with the second flash but not the first flash, and generate a final image of the scene in post-processing based on a combination of the first image and the second image.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of and priority from U.S.Provisional Patent Application Ser. No. 62/937,550 filed 19 Nov. 2019,entitled “MULTI-COLOR FLASH WITH IMAGE POST-PROCESSING”, incorporatedherein by reference in its entirety.

TECHNICAL FIELD OF THE DISCLOSURE

The present disclosure relates generally to cameras and, morespecifically, to cameras with a multi-color flash.

BACKGROUND

Camera flashes provide illumination in low-light conditions. For optimalcolor rendering, the color of the flash should match that of the subjectand/or the full image. This can be accomplished by using a collection oflight sources of different colors so that the combined color pointproduced by the collection matches that of the subject and/or the fullimage. Due to their compact size and low power requirements,light-emitting diodes (LEDs) are attractive candidates for light sourcesused in camera flashes for hand-held, battery-powered devices, such ascameras and cell phones.

BRIEF DESCRIPTION OF THE DRAWINGS

To provide a more complete understanding of the present disclosure andfeatures and advantages thereof, reference is made to the followingdescription, taken in conjunction with the accompanying figures, whereinlike reference numerals represent like parts, in which:

FIG. 1 provides a block diagram illustrating an example camera device,according to some embodiments of the present disclosure;

FIG. 2 provides a flow chart of a method for performing multi-flash withimage post-processing, according to some embodiments of the presentdisclosure;

FIG. 3 provides an example plot illustrating color points of flashes oftwo different colors and a color point of ambient lighting, according tosome embodiments of the present disclosure;

FIG. 4 illustrates an example of using the plot of FIG. 3 to compute acorrection factor with respect to the flash of the first color,according to some embodiments of the present disclosure;

FIG. 5 illustrates an example of using the plot of FIG. 3 to compute acorrection factor with respect to the flash of the second color,according to some embodiments of the present disclosure;

FIG. 6 illustrates an example of using the plot of FIG. 3 to compute acorrection factor with respect to the flashes of both colors, accordingto some embodiments of the present disclosure; and

FIG. 7 provides a block diagram illustrating an example data processingsystem that may be configured to implement at least portions ofmulti-color flash with image post-processing as described herein,according to some embodiments of the present disclosure.

DESCRIPTION OF EXAMPLE EMBODIMENTS OF THE DISCLOSURE

Overview

The systems, methods and devices of this disclosure each have severalinnovative aspects, no single one of which is solely responsible for allof the desirable attributes disclosed herein. Details of one or moreimplementations of the subject matter described in this specificationare set forth in the description below and the accompanying drawings.

For purposes of illustrating multi-color flash with imagepost-processing described herein, it might be useful to understandphenomena that may come into play in multi-color flash cameras. Thefollowing foundational information may be viewed as a basis from whichthe present disclosure may be properly explained. Such information isoffered for purposes of explanation only and, accordingly, should not beconstrued in any way to limit the broad scope of the present disclosureand its potential applications.

LED flash in cameras (or, more generally, any imaging devices), e.g., incell phone imaging, provides illumination for when images are acquiredin low-light conditions. As described above, for optimal colorrendering, the color of the flash should match that of the subjectand/or the full image, which can be accomplished by using a collectionof light sources of different colors to set the optimal color point. Oneconventional method to set the right color point is to, first, measurethe color point with a camera or other device and, next, tune thecollection of LEDs to adjusting the current used to drive each of theLEDs. One challenge with such an approach is that the measurement andtuning should all be done in between the time when the user pushes thebutton to acquire an image and the time when the camera actuallyacquires the image. This is a time-critical step and typically requiresa specialized processing unit, which can be quite costly in terms ofprocessing power and required components. Executing this kind ofpre-processing may be particularly cost-prohibitive for mobileapplications, such as multi-flash cameras used in cell phones.

Embodiments of the present disclosure provide an approach that may bereferred to as “multi-color flash with image post-processing” in that ituses a camera device with a multi-color flash (i.e., flashes of at leasttwo different colors or color points) and implements post-processing(i.e., processing after the images have been acquired by a camera) togenerate images. In one aspect, the multi-color flash with imagepost-processing may be implemented by a controller configured to controla camera and flashes of at least two different colors (or associatedwith at least two different color points), referred to as a “firstflash” and a “second flash.” Generally, as used herein, the term “firstflash” may refer to a collection of light sources, e.g., a collection ofLEDs, which, when the first flash is used when an image is acquired,cause the image to be associate with a first color point. Similarly, theterm “second flash” may refer to a collection of light sources, e.g., acollection of LEDs, which, when the second flash is used when an imageis acquired, cause the image to be associate with a second color point,different from the color point. The controller may be configured tocause the camera to acquire a first image of a scene while the scene isbeing illuminated with the first flash but not the second flash (whichmay cause the first image to be associated with a first color point),then cause the camera to acquire a second image of the scene while thescene is being illuminated with the second flash but not the first flash(which may cause the second image to be associated with a second colorpoint, different from the first color point), and generate a final imageof the scene in post-processing based on a combination of the firstimage and the second image. For example, the final image may begenerated as a weighted average, a squared weighted average, a weightedmedian, or any other suitable combination of the first and second imagesto represent the desired balance between the first and second flashes inthe final image. In this manner, selection of the optimal/desired colorpoint for the multi-color flash may be performed in post-processing,which may alleviate some of the demands or requirements on thepre-processing steps that have to be performed, advantageously allowingto, e.g., use a less complicated processing unit, which may lead tosignificant cost savings. For example, in some embodiments, thepost-processing of generating the final image may be performed by anapplication-layer processor. Other features and advantages of thedisclosure will be apparent from the following description and theclaims.

In the following, the multi-color flash is described with reference toflashes of two different colors (or color points). For example, thefirst flash could be such that the first color point is a color point ofa cold white (CW) color and the second flash could be such that thesecond color point is a color point of a warm white (WW) color. However,these descriptions can be easily extended to other embodiments whereother colors of the first and second flashes may be used, and/or whereflashes of more than two different colors may be used, all of whichembodiments being within the scope of the present disclosure.Furthermore, while some descriptions may refer to LEDs as the lightsources for the flashes of different colors, in other embodiments, anysuitable light sources, not limited to the LEDs, may be used. Stillfurther, descriptions provided herein that refer to a flash of one colorproviding illumination while a flash of another color is off are equallyapplicable and cover embodiments where the second flash is notcompletely off but is dimmed, e.g., is dimmed to less than about 30% ofits nominal output, to less than about 20%, or to less than about 10%,including all values and ranges therein. Since each flash may beimplemented as a collection of light sources, e.g., a collection ofLEDs, embodiments could be envisioned where at no point of acquiring theimages with different color flashes as described herein all of the LEDsare off. Instead, it could be that different sets of LEDs emit lightwith different intensities at different moments in time, which result indifferent color points of the images which are acquired to generate thefinal image as described herein. Thus, generally, descriptions referringto acquiring a given image while a given flash is illuminating the sceneand while other flashes are not illuminating the scene include anyembodiments where a given set of light sources emit light, each at acertain intensity (which could be different from one light source toanother), resulting in illumination of the scene associated with acertain color point, different from the color points of other one ormore flashes. Therefore, multi-color flash with image post-processingdescribed herein refers, generally, to any embodiments where multiplesequential pictures are taken with various flash color points that arecombined afterwards, where the flash color point does not necessarilyneed to be the same as the color point of a given light source or agiven set of light sources.

As will be appreciated by one skilled in the art, aspects of the presentdisclosure, in particular aspects of multi-color flash with imagepost-processing, described herein, may be embodied in variousmanners—e.g. as a method, a system, a computer program product, or acomputer-readable storage medium. Accordingly, aspects of the presentdisclosure may take the form of an entirely hardware embodiment, anentirely software embodiment (including firmware, resident software,micro-code, etc.) or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a “circuit,”“module” or “system.” Functions described in this disclosure may beimplemented as an algorithm executed by one or more hardware processingunits, e.g. one or more microprocessors, of one or more computers. Invarious embodiments, different steps and portions of the steps of eachof the methods described herein may be performed by different processingunits. Furthermore, aspects of the present disclosure may take the formof a computer program product embodied in one or more computer readablemedium(s), preferably non-transitory, having computer readable programcode embodied, e.g., stored, thereon. In various embodiments, such acomputer program may, for example, be downloaded (updated) to theexisting devices and systems (e.g. to the existing camera devices and/ortheir controllers, etc.) or be stored upon manufacturing of thesedevices and systems.

In the following detailed description, various aspects of theillustrative implementations may be described using terms commonlyemployed by those skilled in the art to convey the substance of theirwork to others skilled in the art. For example, if used, the term“connected” means a direct electrical or magnetic connection between thethings that are connected, without any intermediary devices, while theterm “coupled” means either a direct electrical or magnetic connectionbetween the things that are connected, or an indirect connection throughone or more passive or active intermediary devices. The term “circuit”means one or more passive and/or active components that are arranged tocooperate with one another to provide a desired function. The terms“substantially,” “close,” “approximately,” “near,” and “about,”generally refer to being within +/−20%, preferably within +/−10%, of atarget value based on the context of a particular value as describedherein or as known in the art.

For the purposes of the present disclosure, the phrase “A and/or B”means (A), (B), or (A and B). For the purposes of the presentdisclosure, the phrase “A, B, and/or C” means (A), (B), (C), (A and B),(A and C), (B and C), or (A, B, and C). The term “between,” when usedwith reference to measurement ranges, is inclusive of the ends of themeasurement ranges. As used herein, the notation “A/B/C” means (A), (B),and/or (C).

The description uses the phrases “in an embodiment” or “in embodiments,”which may each refer to one or more of the same or differentembodiments. Furthermore, the terms “comprising,” “including,” “having,”and the like, as used with respect to embodiments of the presentdisclosure, are synonymous. Unless otherwise specified, the use of theordinal adjectives “first,” “second,” and “third,” etc., to describe acommon object, merely indicate that different instances of like objectsare being referred to, and are not intended to imply that the objects sodescribed must be in a given sequence, either temporally, spatially, inranking or in any other manner.

In the following detailed description, reference is made to theaccompanying drawings that form a part hereof, showing, by way ofillustration, some of the embodiments that may be practiced. In thedrawings, same reference numerals refer to the same or analogouselements/materials so that, unless stated otherwise, explanations of anelement/material with a given reference numeral provided in context ofone of the drawings are applicable to other drawings whereelements/materials with the same reference numerals may be illustrated.The accompanying drawings are not necessarily drawn to scale. Moreover,it will be understood that certain embodiments can include more elementsthan illustrated in a drawing, certain embodiments can include a subsetof the elements illustrated in a drawing, and certain embodiments canincorporate any suitable combination of features from two or moredrawings.

Various operations may be described as multiple discrete actions oroperations in turn in a manner that is most helpful in understanding theclaimed subject matter. However, the order of description should not beconstrued as to imply that these operations are necessarily orderdependent. In particular, these operations may not be performed in theorder of presentation. Operations described may be performed in adifferent order from the described embodiment. Various additionaloperations may be performed, and/or described operations may be omittedin additional embodiments.

In some examples provided herein, interaction may be described in termsof two, three, four, or more electrical components. However, this hasbeen done for purposes of clarity and example only. It should beappreciated that the devices and systems described herein can beconsolidated in any suitable manner. Along similar design alternatives,any of the illustrated components, modules, and elements of theaccompanying drawings may be combined in various possibleconfigurations, all of which are clearly within the broad scope of thepresent disclosure. In certain cases, it may be easier to describe oneor more of the functionalities of a given set of flows by onlyreferencing a limited number of electrical elements.

The following detailed description presents various descriptions ofspecific certain embodiments. However, is to be understood that otherembodiments may be utilized, and structural or logical changes may bemade without departing from the scope of the present disclosure. Ingeneral, the innovations described herein can be embodied in a multitudeof different ways, for example, as defined and covered by the claimsand/or select examples, and the following detailed description is not tobe taken in a limiting sense.

Example Camera Device

FIG. 1 provides a block diagram illustrating an example camera device100 in which multi-color flash with image post-processing may beimplemented, according to some embodiments of the present disclosure. Asshown in FIG. 1, the camera device 100 may include a first flash 102(i.e., a flash associated with a first color point), a second flash 104(i.e., a flash associated with a second color point), a camera 106, acontroller 108, and, optionally, a measuring unit 110.

Each of the first flash 102 and the second flash 104 may include acollection of light sources, e.g., a collection of LEDs, which, when thecamera 106 acquires an image with one of these flashes illuminating thescene, causes the acquired image to be associate with a different colorpoint. For example, the first flash 102 could be a CW color flash andthe second flash 104 could be a WW color flash. In some embodiments, ascene being illuminated with the first flash 102 may include the scenebeing illuminated by a first plurality of light sources of one or moreof a plurality of colors, and a scene being illuminated with the secondflash 104 may include the scene being illuminated by a second pluralityof light sources of one or more of the plurality of colors, illuminationprovided by the second plurality of light sources having a differentcolor than illumination provided by the first plurality of lightsources. The color of a given flash (or a given light source or acollection of light sources) may originate from different emissionspectra of the light source and is characterized by different location(color point) in the RGB color space of the camera 106.

The camera 106 may include any suitable imaging device configured toacquire images of a scene. The camera 106 may be communicatively coupledto the each of the first flash 102 and the second flash 104 so thatthese flashes may be synchronized to provide illumination of the scenewhen the camera 106 is acquiring images.

The timing of acquiring images by the camera 106 and the selectiveengagement of the flashes 102 and 104 in providing illumination when theimages are acquired may be controlled by the controller 108, e.g., asdescribed below. The controller 108 may also be configured to generatethe final image of a scene based on the images acquired by the camera106. In some embodiments, the controller 106 may be implemented as, orinclude at least portions of, a data processing system 700 shown in FIG.7.

If used, the measuring unit 110 may be configured to perform additionalmeasurements that may be used by the controller 108 in generating thefinal images. For example, in various embodiments, the measuring unit110 may be configured to measure one or more of ambient (white) colorpoint, spectrum, ambient (white) RGB response, of ambient correlatedcolor temperature (CCT), and other parameters related to acquiredimages, such as auto focus, auto exposure, etc. In some embodiments, themeasuring unit 110 may also be configured to perform measurements of, ormeasurements that enable calculation of, the values of Ra, Ba, Ga,described below, e.g., the values used in equations (1)-(3) providedbelow.

Although the camera device 100 illustrates only two flashes of differentcolors, namely, the flashes 102 and 104, in other embodiments,additional flashes of different colors may be included in the cameradevice 100. In addition, in further embodiments the camera device 100may include other components. For example, in some embodiments, thecamera device 100 may further include an output device, configured todisplay, e.g., one or more of the first image, the second image, and thefinal image as described herein. In another example, in someembodiments, the camera device 100 may further include an input device,configured to receive user input to be used by the camera device toperform one of more of 106 cause the camera to acquire the first image,cause the camera 106 to acquire the second image, and the controller 108generate the final image. In yet another example, in some embodiments,the camera device 100 may further include one or more communicationchips and an antenna, configured to wirelessly transmit one or more ofthe first image, the second image, and the final image, and/orwirelessly receive input to be used by the camera device 100 to performone of more of cause the camera to acquire the first image, cause thecamera to acquire the second image, and generate the final image.

Furthermore, while various components are shown in FIG. 1 as includedwithin the camera device 100, in various embodiments, the camera device100 may refer to a device that includes to any combination of one ormore of these components, in which case the other components shown inFIG. 1 may be implemented externally (i.e., in a separate device) andmay be communicatively coupled to components of the camera device 100 asneeded, via any appropriate communication channel, to implement themulti-flash with image post-processing as described herein.

In various embodiments, the camera device 100 may be, e.g., a wearablecamera device (e.g., a smart watch), a hand-held camera device (e.g., amobile phone), or a stationary camera (e.g., a security/surveillancecamera).

Example Method

FIG. 2 illustrates a flow chart of a method 200 for performingmulti-flash with image post-processing, according to some embodiments ofthe present disclosure. Although method 200 is now described withreference to elements illustrated in FIG. 1, any system or apparatusconfigured to perform various processes of this method, in any order, iswithin the scope of the present disclosure.

As shown in FIG. 2, the method 200 may begin with a process 202 whichincludes the controller 108 causing the camera 106 to acquire a firstimage of a scene while the scene is being illuminated with the firstflash 102 but not with the second flash 104. Similarly, in a process 204of the method 200, the controller 108 causes the camera 106 to acquire asecond image of the scene while the scene is being illuminated with thesecond flash 102 but not with the first flash 102. In general, theprocesses 202 and 204 represent that the method 200 includes the camera106 acquiring separate images with flashes of different colors, wherefor each of these images, one or more of the flashes are illuminatingthe scene during image acquisition, while one or more other flashes areoff. Typically, ambient light would also be present and also provideillumination for the scene when images with the external illuminationfrom the flashes 102 or 102 are acquired. Thus, more generally, theprocess 202 includes the controller 108 causing the camera 106 toacquire the first image while the scene is being illuminated with thefirst flash 102 and the ambient light, while the process 204 includesthe controller 108 causing the camera 106 to acquire the second imagewhile the scene is being illuminated with the second flash 102 and theambient light.

As shown in FIG. 2, the method 200 may also include an optional process206 which includes the controller 108 causing the camera 106 to acquirea third image of the scene while the scene is not being illuminated withthe first or second flashes 102, 104 (or, more generally, while thescene is not being illuminated with any flash and only ambient light maybe present).

While the images acquired in the processes 202, 204, and 206 arereferred to as first, second, and third images, in general, theseprocesses may be performed in order other than what is shown in FIG. 2.For example, in some embodiments, the order may be as follows: first,the process 202 is performed, then the process 206 is performed afterthe process 202, then the process 204 performed after the process 206.

Furthermore, in some embodiments, the method 200 may include performingany of the processes 202, 204, and 206 multiple times, e.g., tocompensate for motion-related artefacts. In some such embodiments, anyof the processes 202, 204, and 206 may be repeated multiple timesconsecutively. In other such embodiments, the method 200 any combinationof these processes. For example, the method 200 may include performingthe processes 202, 204, and 206 in the following order: 202, 206, 202,202, 204, 206, 202, 206, 202, 206, 204. In general, any combination ofthese processes may be included in the method 200. In this context, forall descriptions provided herein, the first, second, and third imagesmay refer to not necessarily the pixel values of the images as they wereacquired by the camera 106, but to any combination of the pixel valuesfrom multiple instances of acquiring each of the images. For example, ifthe method 200 includes repeating the process 202 multiple times, the“first image” may refer to a matrix of pixel values where each pixelvalue is a combination, e.g., an average or any other statisticalrepresentation, of the corresponding pixel values in multiple instancesof the images originally acquired in each of the processes 202. In thiscontext, a pixel value of one image may be referred to as being“corresponding to a pixel value of another image” when these pixelvalues are of pixels in the same position/location within a matrix ofpixels of the images. For example, a pixel value of the pixel (1,1) ofthe matrix of pixels of one image (i.e., the pixel in the first row andthe first column of the array of pixels of that image) corresponds to apixel value of the pixel (1,1) of the matrix of pixels of another image.

Furthermore, what is considered to be a pixel value may be different indifferent embodiments of the method 200. In some embodiments, differentpixels may be monochromatic pixels. In other embodiments, differentpixels may be (R, G, B)-pixels. In still other embodiments, differentpixels may be other combination of colors, e.g., RGBW or RGB/Cyan.Unless specified otherwise, referring to “pixel values” in any of theexplanations provided herein, values of pixels according to any of theseembodiments are within the scope of the present disclosure.

Acquisition of the images with different color flashes providingillumination, and with no external flashes but only with ambient lightproviding illumination, causes these images to be associated withdifferent color points which may later be used by the controller 108 tocombine the images in post-processing to generate the final image. Tothat end, in some embodiments, a color point of an image may beillustrated in a plot, some examples of which being shown in FIGS. 3-6,described in greater detail below, each of which illustrates a white dotrepresenting a color point of the first image (i.e., the image acquiredin the process 202), a black dot representing a color point of thesecond image (i.e., the image acquired in the process 204), and a greydot representing a color point of the third image (i.e., the imageacquired in the process 206).

Turning back to FIG. 2, the method 200 may also include a process 208which includes the controller 108 generating a final image of the scenebased on a combination of at least the first image and the second image,possibly in combination with the third image (since the acquisition thethird image is optional). Some examples of the combination are describedbelow. It is to be understood that, in various further embodiments,there could be additional processing steps involved in performing theprocess 208, which are not specifically described here but are known inthe art of image processing, such as normalization of brightness of theacquired images (e.g., relative to one or more of image sensorsensitivity, exposure time, and possible other settings of the camera106 during acquisition of the images), depending on the type of inputimages (e.g., jpeg or raw or . . . ), a correction including the Gammacurve, application of the same color correction matrix on all pictures(if not fixed before acquiring the images), etc.

In some embodiments, the process 208 may include the controller 108applying respective weights to the pixel values of the first and secondimages to generate what may be referred to as “modified” first andsecond images (e.g., where each pixel value of the originally acquiredimage is multiplied by a certain weight), and then combining the pixelvalues of the modified first and second images to generate the finalimage. For example, in some embodiments, the process 208 may include thecontroller 108 generating a modified first image by multiplying each ofpixel values of the first image by a first weight (the first weightbeing a value equal to or greater than zero and equal to or less than 1)and generating a modified second image by multiplying each of pixelvalues of the second image by a second weight (the second weight being avalue so that the sum of the first and second weights is equal to 1, forthe embodiments where only two different flashes are used). The process208 may also include the controller 108 generating the final image byadding, e.g., on a pixel-by-pixel basis, a pixel value of the modifiedfirst image with a corresponding pixel value of the modified secondimage. In this manner, the final image may be generated as a weightedaverage of the first and second images. However, in other embodiments,the weights may be used differently to generate the final images. Forexample, in various other embodiments, the final image may be generatedas a squared weighted average, a weighted median, or any other suitablecombination of the first and second images (possibly with weightsapplied thereto) to represent the desired balance between the first andsecond flashes in the final image. In some embodiments where the weightsare used, the weights may be such that a sum of all weights applied toimages with different color of flashes add up to 1. Some examples of howweights may be used by the controller 108 to implement the process 208of the method 200 are described with reference to FIGS. 3-6, where thecontroller 108 may be configured to compute a correction factor γ toapply to the first image to generate the modified first image (i.e., theweight applied to the first image is equal to, or is based on, thecorrection factor γ), and apply a correction factor equal to 1−γ to thesecond image to generate the modified second image (i.e., the weightapplied to the second image is equal to, or is based on, the correctionfactor 1−γ).

Besides various embodiments being possible for generating and applyingweights to the first and second images, how the modified first andsecond images are combined in the process 208 may also be carried out invarious manners. In some embodiments, the controller 108 may beconfigured to combine the modified first and second images to generatethe final image on a pixel-by-pixel basis by somehow combining pixelvalues of the modified first image with corresponding pixel values ofthe modified second image. In this context, as used herein, describingan action being performed “on pixel-by-pixel basis” refers to performingthe action for each one of the pixels individually. For example, thecontroller 108 adding, on a pixel-by-pixel basis, a pixel value of themodified first image with a corresponding pixel value of the modifiedsecond image refers to the controller 108 adding a pixel value of thepixel (1,1) of the modified first image with a pixel value of the pixel(1,1) (i.e., the corresponding pixel value) of the modified secondimage, adding a pixel value of the pixel (1,2) of the modified firstimage with a pixel value of the pixel (1,2) (i.e., the correspondingpixel value) of the modified second image, and so on.

In some embodiments of the method 200, the method may further includereceiving a user input indicative of a factor representing a balancebetween the first image and the second image in the final image, andthen generating the final image in the process 208 based on the receivedfactor. For example, in some such embodiments, the controller 108 may beconfigured to generate a modified first image by multiplying each ofpixel values of the first image by a first weight indicative of thereceived factor, generating a modified second image by multiplying eachof pixel values of the second image by a second weight, indicative ofthe received factor, and generating the final image by adding, on apixel-by-pixel basis, a pixel value of the modified first image with acorresponding pixel value of the modified second image. Discussionsprovided above with respect to generating the final image in a way otherthan the simple weighted combination of the first and second images areapplicable to such embodiments as well.

While discussions of the method 200 and other discussions providedherein refer to processing of images, these discussions are equallyapplicable to processing of video signals that may be acquired if thecamera 106 is a video recording device that generates a video thatincludes a plurality of consecutive frames. In this context, each of theframes may be generated as the final image described herein.

Examples of computing a correction factor to be applied in generation ofthe final image

As briefly described above, in some embodiments, the process 208 mayinclude the controller 108 computing what is referred to herein as a“correction factor” (denoted as γ) based on the color points of thefirst, second, and third images, and then applying the correction factorto the first and second images to compute pixels values of the finalimage. FIGS. 3-6 provide different examples of how the correction factorγ could be computed.

Each of FIGS. 3-6 illustrates a white dot 301, representing a colorpoint of the first flash 102 (e.g., computed by the controller 108 basedon the first image acquired in the process 202), a black dot 302,representing a color point of the second flash 104 (e.g., computed bythe controller 108 based on the image acquired in the process 204), anda grey dot 303, representing a color point of the ambient light (e.g.,computed by the controller 108 based on the third image acquired in theprocess 206 or obtained based on the measurements of the measurementunit 110). The horizontal axis of the examples of each of FIGS. 3-6illustrates a value indicative of a sum of all or a sub-set of all redpixels of a given image (R) divided by a value indicative of a sum ofall or a sub-set of all green pixels of a given image (G), i.e., RIG,while the vertical axis of each of FIGS. 3-6 illustrates a valueindicative of a sum of all or a sub-set of all blue pixels of a givenimage (B) divided by a value indicative of a sum of all or a sub-set ofall green pixels of a given image (G), i.e., BIG. However, this is justone example of how a plot with color points of different flashes and thecolor point of ambient light may be represented in order to compute acorrection factor to apply to the first and second images to generatethe final image in the process 208, the example being one particularexample given for an RGB camera. In other embodiments, measuresindicative of various pixel values of the flash-illuminated images andambient light color points could be different.

For the specific example shown in FIGS. 3-6, the coordinates of thefirst flash color point 301 within the plot 300 may be (R_(cw)/G_(cw);B_(cw)/G_(cw)), the coordinates of the second flash color point 302within the plot 300 may be (R_(ww)/G_(ww); B_(ww)/G_(ww)), while thecoordinates of the ambient color point 303 within the plot 300 may be(R_(a)/G_(a); B_(a)/G_(a)). In this notation, “CW” refers to “coldwhite” indicating that the first flash 102 could be of a first colorthat is CW, “WW” refers to “warm white” indicating that the second flash104 could be of a second color that is WW, while “a” refers to“ambient.”

In particular, FIG. 4 illustrates that, in some embodiments, thecorrection factor γ may be computed with reference to the horizontalaxis of the plot 300. In particular, FIG. 4 illustrates that thecorrection factor may be computed based on where the ambient color point303 is located, along the horizontal axis of the plot 300, with respectto the location of the first flash color point 301 and the location ofthe second flash color point 302 along the horizontal axis. To that end,FIG. 4 illustrates the coordinates of the color points 301, 302, and 303along the horizontal axis, and these values may be used to compute thecorrection factor γ as follows:

$\begin{matrix}{\gamma = \frac{\left( {R_{a}/G_{a}} \right) - \left( {R_{ww}/G_{ww}} \right)}{\left( {R_{cw}/G_{cw}} \right) - \left( {R_{ww}/G_{ww}} \right)}} & (1)\end{matrix}$

FIG. 5 illustrates that, in some embodiments, the correction factor γmay be computed with reference to the vertical axis of the plot 300. Inparticular, FIG. 5 illustrates that the correction factor may becomputed based on where the ambient color point 303 is located, alongthe vertical axis of the plot 300, with respect to the location of thefirst flash color point 301 and the location of the second flash colorpoint 302 along the vertical axis. To that end, FIG. 5 illustrates thecoordinates of the color points 301, 302, and 303 along the verticalaxis, and these values may be used to compute the correction factor γ asfollows:

$\begin{matrix}{\gamma = \frac{\left( {B_{a}/G_{a}} \right) - \left( {B_{ww}/G_{ww}} \right)}{\left( {B_{cw}/G_{cw}} \right) - \left( {B_{ww}/G_{ww}} \right)}} & (2)\end{matrix}$

Finally, FIG. 6 illustrates that, in some embodiments, the correctionfactor γ may be computed with reference to the straight line connectingthe first flash color point 301 and the second flash color point 302 ofthe plot 300. In particular, FIG. 6 illustrates that the correctionfactor may be computed based on where the ambient color point 303 islocated, along the straight line connecting the first flash color point301 and the second flash color point 302 in the plot 300, with respectto the location of the first flash color point 301 and the location ofthe second flash color point 302 along that line. To that end, FIG. 6illustrates the coordinates of the color points 301 and 302, and thecoordinates (R′_(a)/G′_(a);B′_(a)/G′_(a)) of the projection (point 304,labeled in FIG. 6) of the ambient color point 303 onto the lineconnecting the color points 301 and 302. In such embodiments, thecorrection factor γ may be computed as follows:

$\begin{matrix}{{\gamma = \frac{\left( {B_{a}^{\prime}/G_{a}^{\prime}} \right) - \left( {B_{ww}/G_{ww}} \right)}{\left( {B_{cw}/G_{cw}} \right) - \left( {B_{ww}/G_{ww}} \right)}} = \frac{\left( {R_{a}^{\prime}/G_{a}^{\prime}} \right) - \left( {R_{ww}/G_{ww}} \right)}{\left( {R_{cw}/G_{cw}} \right) - \left( {R_{ww}/G_{ww}} \right)}} & (3)\end{matrix}$

In each of these examples, the correction factor γ may be a valuebetween 0 and 1, and it may be applied to the first and second images inany of the ways described above. Furthermore, while FIG. 6 illustratesidentifying the position of the ambient color point with respect to thestraight line connecting the color points 301 and 302, in otherembodiments, the ambient color point 303 could be referenced to a curvedline, or some other line that is not straight, between the color points301 and 302. Still further, when flashes of more than two colors areused, the ambient color point could be determined with respect tocorrespondingly more than two color points.

Example Data Processing System

FIG. 7 provides a block diagram illustrating an example data processingsystem 700 that may be configured to implement at least portions ofcamera devices with multi-flash with image post-processing as describedherein, e.g., of the camera devices as described with reference to FIGS.1-6, according to some embodiments of the present disclosure.

As shown in FIG. 7, the data processing system 700 may include at leastone processor 702, e.g. a hardware processor 702, coupled to memoryelements 704 through a system bus 706. As such, the data processingsystem may store program code within memory elements 704. Further, theprocessor 702 may execute the program code accessed from the memoryelements 704 via a system bus 706. In one aspect, the data processingsystem may be implemented as a computer that is suitable for storingand/or executing program code. It should be appreciated, however, thatthe data processing system 700 may be implemented in the form of anysystem including a processor and a memory that is capable of performingthe functions described within this disclosure.

In some embodiments, the processor 702 can execute software or analgorithm to perform the activities as discussed in this specification,in particular activities related to multi-flash with imagepost-processing described herein. The processor 702 may include anycombination of hardware, software, or firmware providing programmablelogic, including by way of non-limiting example a microprocessor, a DSP,a field-programmable gate array (FPGA), a programmable logic array(PLA), an integrated circuit (IC), an application specific IC (ASIC), ora virtual machine processor. The processor 702 may be communicativelycoupled to the memory element 704, for example in a direct-memory access(DMA) configuration, so that the processor 702 may read from or write tothe memory elements 704.

In general, the memory elements 704 may include any suitable volatile ornon-volatile memory technology, including double data rate (DDR) randomaccess memory (RAM), synchronous RAM (SRAM), dynamic RAM (DRAM), flash,read-only memory (ROM), optical media, virtual memory regions, magneticor tape memory, or any other suitable technology. Unless specifiedotherwise, any of the memory elements discussed herein should beconstrued as being encompassed within the broad term “memory.” Theinformation being measured, processed, tracked or sent to or from any ofthe components of the data processing system 700 could be provided inany database, register, control list, cache, or storage structure, allof which can be referenced at any suitable timeframe. Any such storageoptions may be included within the broad term “memory” as used herein.Similarly, any of the potential processing elements, modules, andmachines described herein should be construed as being encompassedwithin the broad term “processor.” Each of the elements shown in thepresent figures, e.g., any of the circuits/components shown in FIG. 1,can also include suitable interfaces for receiving, transmitting, and/orotherwise communicating data or information in a network environment sothat they can communicate with, e.g., the data processing system 700 ofanother one of these elements.

In certain example implementations, mechanisms for implementingmulti-flash with image post-processing in camera devices as outlinedherein may be implemented by logic encoded in one or more tangiblemedia, which may be inclusive of non-transitory media, e.g., embeddedlogic provided in an ASIC, in DSP instructions, software (potentiallyinclusive of object code and source code) to be executed by a processor,or other similar machine, etc. In some of these instances, memoryelements, such as e.g. the memory elements 704 shown in FIG. 7, canstore data or information used for the operations described herein. Thisincludes the memory elements being able to store software, logic, code,or processor instructions that are executed to carry out the activitiesdescribed herein. A processor can execute any type of instructionsassociated with the data or information to achieve the operationsdetailed herein. In one example, the processors, such as e.g. theprocessor 702 shown in FIG. 7, could transform an element or an article(e.g., data) from one state or thing to another state or thing. Inanother example, the activities outlined herein may be implemented withfixed logic or programmable logic (e.g., software/computer instructionsexecuted by a processor) and the elements identified herein could besome type of a programmable processor, programmable digital logic (e.g.,an FPGA, a DSP, an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM)) or an ASICthat includes digital logic, software, code, electronic instructions, orany suitable combination thereof.

The memory elements 704 may include one or more physical memory devicessuch as, for example, local memory 708 and one or more bulk storagedevices 710. The local memory may refer to RAM or other non-persistentmemory device(s) generally used during actual execution of the programcode. A bulk storage device may be implemented as a hard drive or otherpersistent data storage device. The processing system 700 may alsoinclude one or more cache memories (not shown) that provide temporarystorage of at least some program code in order to reduce the number oftimes program code must be retrieved from the bulk storage device 710during execution.

As shown in FIG. 7, the memory elements 704 may store an application718. In various embodiments, the application 718 may be stored in thelocal memory 708, the one or more bulk storage devices 710, or apartfrom the local memory and the bulk storage devices. It should beappreciated that the data processing system 700 may further execute anoperating system (not shown in FIG. 7) that can facilitate execution ofthe application 718. The application 718, being implemented in the formof executable program code, can be executed by the data processingsystem 700, e.g., by the processor 702. Responsive to executing theapplication, the data processing system 700 may be configured to performone or more operations or method steps described herein.

Input/output (I/O) devices depicted as an input device 712 and an outputdevice 714, optionally, can be coupled to the data processing system.Examples of input devices may include, but are not limited to, akeyboard, a pointing device such as a mouse, or the like. Examples ofoutput devices may include, but are not limited to, a monitor or adisplay, speakers, or the like. In some embodiments, the output device714 may be any type of screen display, such as plasma display, liquidcrystal display (LCD), organic light emitting diode (OLED) display,electroluminescent (EL) display, or any other indicator, such as a dial,barometer, or light emitting diode (LED). In some implementations, thesystem may include a driver (not shown) for the output device 714. Inputand/or output devices 712, 714 may be coupled to the data processingsystem either directly or through intervening I/O controllers.

In an embodiment, the input and the output devices may be implemented asa combined input/output device (illustrated in FIG. 7 with a dashed linesurrounding the input device 712 and the output device 714). An exampleof such a combined device is a touch sensitive display, also sometimesreferred to as a “touch screen display” or simply “touch screen”. Insuch an embodiment, input to the device may be provided by a movement ofa physical object, such as e.g. a stylus or a finger of a user, on ornear the touch screen display.

A network adapter 716 may also, optionally, be coupled to the dataprocessing system to enable it to become coupled to other systems,computer systems, remote network devices, and/or remote storage devicesthrough intervening private or public networks. The network adapter maycomprise a data receiver for receiving data that is transmitted by saidsystems, devices and/or networks to the data processing system 700, anda data transmitter for transmitting data from the data processing system700 to said systems, devices and/or networks. Modems, cable modems, andEthernet cards are examples of different types of network adapter thatmay be used with the data processing system 700.

SELECT EXAMPLES

Example 1 provides a camera device that includes a controller,configured to cause a camera to acquire a first image of a scene whilethe scene is being illuminated with a first flash while not beingsubstantially illuminated with a second flash, the first flash causingthe first image to be associated with a first color point; cause thecamera to acquire a second image of the scene while the scene is beingilluminated with a second flash while not being substantiallyilluminated with the first flash, the second flash causing the secondimage to be associated with a second color point, different from thefirst color point; and generate a final image of the scene based on acombination of the first image and the second image.

Example 2 provides the camera device according to example 1, where thecontroller is configured to generate the final image of the scene basedon the combination of the first image and the second image by generatinga modified first image by multiplying each of pixel values of the firstimage by a first weight (the first weight being a value equal to orgreater than zero and equal to or less than 1), generating a modifiedsecond image by multiplying each of pixel values of the second image bya second weight (the second weight being a value equal to 1 minus thefirst weight for the embodiments where only two different flashes areused), and generating the final image by adding, on a pixel-by-pixelbasis, a pixel value of the modified first image with a correspondingpixel value of the modified second image. In this manner, the finalimage may be generated as a weighted average of the first and secondimages.

Example 3 provides the camera device according to example 1, where thecontroller is further configured to cause the camera to acquire a thirdimage of the scene while the scene is not being illuminated with thefirst flash and not being illuminated with the second flash (e.g., thethird image may be acquired with only the ambient lighting). Such athird image may be used to determine the ambient color point asdescribed herein. In other examples, the ambient color point could bedetermined based on the measurements by the measurement unit 110.

Example 4 provides the camera device according to example 3, where thecontroller is configured to generate the final image of the scene basedon the combination of the first image and the second image by computinga multi-color flash post-processing factor (γ) based on at least asub-set of pixel values of the first image, the second image, and thethird image, generating a modified first image by multiplying each ofpixel values of the first image by γ, generating a modified second imageby multiplying each of pixel values of the second image by a value equalto 1−γ, and generating the final image by adding, on a pixel-by-pixelbasis, a pixel value of the modified first image with a correspondingpixel value of the modified second image.

Example 5 provides the camera device according to example 4, where thethird image is associated with a third color point, each of the firstcolor point, the second color point, and the third color point has arespective different location in a plot having a first axis and a secondaxis, the first axis of the plot indicating values of a ratio of a sumof at least the sub-set of pixel values of a first primary color to asum of at least the sub-set of pixels values of a third primary color,and the second axis of the plot indicating values of a ratio of a sum ofat least the sub-set of pixels values of a second primary color to thesum of at least the sub-set of pixels values of the third primary color,and the controller is configured to compute γ based on at least thesub-set of pixel values of the first image, the second image, and thethird image by computing a value indicative of the location of the thirdcolor point with respect to the location of the first color point andthe location of the second color point along the first axis of the plot.

Example 6 provides the camera device according to example 4, where thethird image is associated with a third color point, each of the firstcolor point, the second color point, and the third color point has arespective different location in a plot having a first axis and a secondaxis, the first axis of the plot indicating values of a ratio of a sumof at least the sub-set of pixel values of a first primary color to asum of at least the sub-set of pixels values of a third primary color,and the second axis of the plot indicating values of a ratio of a sum ofat least the sub-set of pixels values of a second primary color to thesum of at least the sub-set of pixels values of the third primary color,and the controller is configured to compute γ based on at least thesub-set of pixel values of the first image, the second image, and thethird image by computing a value indicative of the location of the thirdcolor point with respect to the location of the first color point andthe location of the second color point along the second axis of theplot.

Example 7 provides the camera device according to example 4, where thethird image is associated with a third color point, each of the firstcolor point, the second color point, and the third color point has arespective different location in a plot having a first axis and a secondaxis, the first axis of the plot indicating values of a ratio of a sumof at least the sub-set of pixel values of a first primary color to asum of at least the sub-set of pixels values of a third primary color,and the second axis of the plot indicating values of a ratio of a sum ofat least the sub-set of pixels values of a second primary color to thesum of at least the sub-set of pixels values of the third primary color,and the controller is configured to compute γ based on at least thesub-set of pixel values of the first image, the second image, and thethird image by computing a value indicative of the location of the thirdcolor point with respect to a line in the plot connecting the locationof the first color point and the location of the second color point.

Example 8 provides the camera device according to example 1, where thecontroller is configured to generate the final image of the scene basedon the combination of the first image and the second image by receivinga user input indicative of a factor representing a balance between thefirst image and the second image in the final image, generating amodified first image by multiplying each of pixel values of the firstimage by a first weight indicative of the factor, generating a modifiedsecond image by multiplying each of pixel values of the second image bya second weight, indicative of the factor, and generating the finalimage by adding, on a pixel-by-pixel basis, a pixel value of themodified first image with a corresponding pixel value of the modifiedsecond image.

Example 9 provides the camera device according to any one of thepreceding examples, where the camera device is a video recording deviceconfigured to generate a video that includes a plurality of consecutiveframes, and the final image is one of the plurality of frames of thevideo.

Example 10 provides the camera device according to example 9, where eachframe of the plurality of frames of the video is generated as arespective final image based on the combination of a respective firstimage and a respective second image acquired for the frame.

Example 11 provides the camera device according to any one of thepreceding examples, where the scene being illuminated with the firstflash includes the scene being illuminated by a first plurality of lightsources of one or more of a plurality of colors, and the scene beingilluminated with the second flash includes the scene being illuminatedby a second plurality of light sources of one or more of the pluralityof colors, illumination provided by the second plurality of lightsources having a different color than illumination provided by the firstplurality of light sources.

Example 12 provides the camera device according to any one of thepreceding examples, where the first color point is a color point of acold white color and the second color point is a color point of a warmwhite color.

Example 13 provides the camera device according to any one of thepreceding examples, where the camera device further includes one of moreof the camera, the first flash, and the second flash.

Example 14 provides the camera device according to any one of thepreceding examples, where the camera device further includes an outputdevice, configured to display one or more of the first image, the secondimage, and the final image.

Example 15 provides the camera device according to any one of thepreceding examples, where the camera device further includes an inputdevice, configured to receive user input to be used by the camera deviceto perform one of more of cause the camera to acquire the first image,cause the camera to acquire the second image, and generate the finalimage.

Example 16 provides the camera device according to any one of thepreceding examples, where the camera device further includes one or morecommunication chips and an antenna, configured to wirelessly transmitone or more of the first image, the second image, and the final image,or wirelessly receive input to be used by the camera device to performone of more of cause the camera to acquire the first image, cause thecamera to acquire the second image, and generate the final image.

Example 17 provides the camera device according to any one of thepreceding examples, where the camera device is a wearable camera device(e.g., a smart watch), a hand-held camera device (e.g., a mobile phone),or a stationary camera (e.g., a security/surveillance camera).

Example 18 provides a non-transitory computer-readable storage medium,storing computer-readable instructions operable to, when theinstructions are executed on a processor, to retrieve, or cause a camerato acquire, a first image of a scene taken by a camera while the sceneis being illuminated with a first flash while not being illuminated witha second flash, the first flash causing the first image to be associatedwith a first color point; retrieve, or cause a camera to acquire, asecond image of the scene taken by the camera while the scene is beingilluminated with the second flash while not being illuminated with thefirst flash, the second flash causing the second image to be associatedwith a second color point, different from the first color point; andgenerate a final image of the scene based on a combination of the firstimage and the second image.

Example 19 provides a method for operating a camera device, the methodincluding causing a camera to acquire a first image of a scene while thescene is being illuminated with a first flash while not beingsubstantially illuminated with a second flash, the first flash causingthe first image to be associated with a first color point; causing thecamera to acquire a second image of the scene while the scene is beingilluminated with the second flash while not being substantiallyilluminated with the first flash, the second flash causing the secondimage to be associated with a second color point, different from thefirst color point; and generating a final image of the scene based on acombination of the first image and the second image.

Example 20 provides the method according to example 19, where the finalimage is generated as a weighted combination of the first image and thesecond image.

Further examples provide a computer program product that includesinstructions configured to operate the camera device according to anyone of the preceding examples and/or to implement the method accordingto any one of the preceding examples.

OTHER IMPLEMENTATION NOTES, VARIATIONS, AND APPLICATIONS

It is to be understood that not necessarily all objects or advantagesmay be achieved in accordance with any particular embodiment describedherein. Thus, for example, those skilled in the art will recognize thatcertain embodiments may be configured to operate in a manner thatachieves or optimizes one advantage or group of advantages as taughtherein without necessarily achieving other objects or advantages as maybe taught or suggested herein.

It should be appreciated that the electrical circuits of theaccompanying drawings and its teachings are readily scalable and canaccommodate a large number of components, as well as morecomplicated/sophisticated arrangements and configurations. Accordingly,the examples provided should not limit the scope or inhibit the broadteachings of the electrical circuits as potentially applied to a myriadof other architectures.

In some embodiments, any number of electrical circuits of theaccompanying drawings may be implemented on a board of an associatedelectronic device. The board can be a general circuit board that canhold various components of the internal electronic system of theelectronic device and, further, provide connectors for otherperipherals. More specifically, the board can provide the electricalconnections by which the other components of the system can communicateelectrically. Any suitable processors (inclusive of digital signalprocessors, microprocessors, supporting chipsets, etc.),computer-readable non-transitory memory elements, etc. can be suitablycoupled to the board based on particular configuration needs, processingdemands, computer designs, etc. Other components such as externalstorage, additional sensors, controllers for audio/video display, andperipheral devices may be attached to the board as plug-in cards, viacables, or integrated into the board itself. In various embodiments, thefunctionalities described herein may be implemented in emulation form assoftware or firmware running within one or more configurable (e.g.,programmable) elements arranged in a structure that supports thesefunctions. The software or firmware providing the emulation may beprovided on non-transitory computer-readable storage medium comprisinginstructions to allow a processor to carry out those functionalities.

In some embodiments, the electrical circuits of, or associated with, theaccompanying drawings may be implemented as stand-alone modules (e.g., adevice with associated components and circuitry configured to perform aspecific application or function) or implemented as plug-in modules intoapplication specific hardware of electronic devices. Note that someembodiments of the present disclosure may be readily included in asystem on chip (SOC) package, either in part, or in whole. An SOCrepresents an integrated circuit (IC) that integrates components of acomputer or other electronic system into a single chip. It may containdigital, analog, mixed-signal, and often radio frequency functions: allof which may be provided on a single chip substrate. Other embodimentsmay include a multi-chip-module (MCM), with a plurality of separate ICslocated within a single electronic package and configured to interactclosely with each other through the electronic package. In various otherembodiments, at least some aspects of the multi-flash with imagepost-processing may be implemented in one or more silicon cores inApplication Specific Integrated Circuits (ASICs), Field ProgrammableGate Arrays (FPGAs), and other semiconductor chips.

It is also important to note that the functions related to multi-flashwith image post-processing, e.g., those summarized in the one or moreprocesses shown in FIG. 2, illustrate only some of the possiblefunctions that may be executed by, or within, the camera devices asdescribed herein. Some of these operations may be deleted or removedwhere appropriate, or these operations may be modified or changedconsiderably without departing from the scope of the present disclosure.In addition, the timing of these operations may be altered considerably.The preceding operational flows have been offered for purposes ofexample and discussion. Substantial flexibility is provided byembodiments described herein in that any suitable arrangements,chronologies, configurations, and timing mechanisms may be providedwithout departing from the teachings of the present disclosure.

Numerous other changes, substitutions, variations, alterations, andmodifications may be ascertained to one skilled in the art and it isintended that the present disclosure encompass all such changes,substitutions, variations, alterations, and modifications as fallingwithin the scope of the appended claims. Note that all optional featuresof any of the devices and systems described herein may also beimplemented with respect to the methods or processes described hereinand specifics in the examples may be used anywhere in one or moreembodiments.

The invention claimed is:
 1. A camera device, comprising: a controller,configured to cause a camera to acquire a first image of a scene whilethe scene is being illuminated with a first set of light sources, thefirst set of light sources for causing the first image to be associatedwith a first color point; cause the camera to acquire a second image ofthe scene while the scene is being illuminated with a second set oflight sources, the second set of light sources for causing the secondimage to be associated with a second color point; obtain a third colorpoint, the third color point associated with the scene not beingilluminated with the first set of light sources and not beingilluminated with the second set of light sources, wherein each of thefirst color point, the second color point, and the third color point hasa respective location in a plot having a first axis and a second axis,the first axis indicating values of a ratio of a sum of at least asub-set of pixel values of a first primary color to a sum of at least asub-set of pixel values of a third primary color, and the second axisindicating values of a ratio of a sum of at least a sub-set of pixelvalues of a second primary color to the sum of at least the sub-set ofpixel values of the third primary color; and generate a final image ofthe scene based on a combination of the first image and the second imageby computing a correction factor based on at least a value indicative ofthe location of the first color point, a value indicative of thelocation of the second color point, and a value indicative of thelocation of the third color point, generating a modified first image bymodifying each of pixel values of the first image by a first value basedon the correction factor, generating a modified second image bymodifying each of pixel values of the second image by a second valuebased on the correction factor, and generating the final image based onpixel values of the modified first image and pixel values of themodified second image.
 2. The camera device according to claim 1,wherein the controller is configured to generate the final image of thescene based on the combination of the first image and the second imageby generating the final image by adding, on a pixel-by-pixel basis, avalue computed based on a pixel value of the first image with a valuecomputed based on a corresponding pixel value of the second image. 3.The camera device according to claim 1, wherein the controller isfurther configured to: cause the camera to acquire a third image of thescene while the scene is not being illuminated with the first set oflight sources and not being illuminated with the second set of lightsources, and generate the final image further based on a color pointassociated with the third image.
 4. The camera device according to claim1, wherein: the controller is configured to compute the correctionfactor based on at least the location of the third color point withrespect to the location of the first color point and the location of thesecond color point along the first axis of the plot.
 5. The cameradevice according to claim 1, wherein: the controller is configured tocompute the correction factor based on at least the location of thethird color point with respect to the location of the first color pointand the location of the second color point along the second axis of theplot.
 6. The camera device according to claim 1, wherein: the controlleris configured to compute the correction factor based on at least thelocation of the third color point with respect to a line in the plotconnecting the location of the first color point and the location of thesecond color point.
 7. The camera device according to claim 1, whereinthe controller is configured to generate a second final image of thescene based on the combination of the first image and the second imageby: receiving a user input indicative of a factor representing a balancebetween the first image and the second image in the second final image,generating a second modified first image by modifying each of pixelvalues of the first image by a first value based on the received factor,generating a second modified second image by modifying each of pixelvalues of the second image by a second value based on the receivedfactor, and generating the second final image based on pixel values ofthe second modified first image and pixel values of the second modifiedsecond image.
 8. The camera device according to claim 1, wherein: thecamera device is a video recording device configured to generate a videothat includes a plurality of consecutive frames, and the final image isone of the plurality of frames of the video.
 9. The camera deviceaccording to claim 8, wherein each frame of the plurality of frames ofthe video is generated as a respective final image based on acombination of a respective first image and a respective second imageacquired for the frame.
 10. The camera device according to claim 1,wherein: the scene being illuminated with the first set of light sourcesincludes the scene being illuminated by a first plurality of lightsources of one or more of a plurality of colors, and the scene beingilluminated with the second set of light sources includes the scenebeing illuminated by a second plurality of light sources of one or moreof the plurality of colors, illumination provided by the secondplurality of light sources having a different color than illuminationprovided by the first plurality of light sources.
 11. The camera deviceaccording to claim 1, wherein the first color point is a color point ofa cold white color and the second color point is a color point of a warmwhite color.
 12. The camera device according to claim 1, wherein thecamera device further includes one of more of the camera, the first setof light sources, and the second set of light sources.
 13. The cameradevice according to claim 1, wherein the camera device further includesan output device, configured to display one or more of the first image,the second image, and the final image.
 14. The camera device accordingto claim 1, wherein the camera device further includes an input device,configured to receive user input to be used by the camera device toperform one of more of: causing the camera to acquire the first image,causing the camera to acquire the second image, and generating the finalimage.
 15. The camera device according to claim 1, wherein the cameradevice further includes one or more communication chips and an antenna,configured to: wirelessly transmit one or more of the first image, thesecond image, and the final image, or wirelessly receive input to beused by the camera device to perform one of more of cause the camera toacquire the first image, cause the camera to acquire the second image,and generate the final image.
 16. The camera device according to claim1, wherein the camera device is a wearable camera device, a hand-heldcamera device, or a stationary camera.
 17. A non-transitory,computer-readable storage medium storing computer-readable instructionsoperable, when the instructions are executed on a processor, to:retrieve a first image of a scene taken by a camera while the scene isbeing illuminated with a first set of light sources, the first set oflight sources for causing the first image to be associated with a firstcolor point; retrieve a second image of the scene taken by the camerawhile the scene is being illuminated with a second set of light sources,the second set of light sources for causing the second image to beassociated with a second color point, different from the first colorpoint; obtain a third color point, the third color point associated withthe scene not being illuminated with the first set of light sources andnot being illuminated with the second set of light sources, each of thefirst color point, the second color point, and the third color pointhaving a respective location in a plot having a first axis and a secondaxis, the first axis indicating values of a ratio of a sum of at least asub-set of pixel values of a first primary color to a sum of at least asub-set of pixel values of a third primary color, and the second axisindicating values of a ratio of a sum of at least a sub-set of pixelvalues of a second primary color to the sum of at least the sub-set ofpixel values of the third primary color; and generate a final image ofthe scene based on a combination of the first image and the second imageby computing a correction factor based on at least a value indicative ofthe location of the first color point, a value indicative of thelocation of the second color point, and a value indicative of thelocation of the third color point, generating a modified first image bymodifying each of pixel values of the first image by a first value basedon the correction factor, generating a modified second image bymodifying each of pixel values of the second image by a second valuebased on the correction factor, and generating the final image based onpixel values of the modified first image and pixel values of themodified second image.
 18. The medium according to claim 17, wherein thecorrection factor is computed based on at least one of the followingequations:${\gamma = \frac{\left( {R_{a}/G_{a}} \right) - \left( {R_{2}/G_{2}} \right)}{\left( {R_{1}/G_{1}} \right) - \left( {R_{2}/G_{2}} \right)}},{\gamma = \frac{\left( {B_{a}/G_{a}} \right) - \left( {B_{2}/G_{2}} \right)}{\left( {B_{1}/G_{1}} \right) - \left( {B_{2}/G_{2}} \right)}},{\gamma = \frac{\left( {B_{a}^{\prime}/G_{a}^{\prime}} \right) - \left( {B_{2}/G_{2}} \right)}{\left( {B_{1}/G_{1}} \right) - \left( {B_{2}/G_{2}} \right)}},{or}$${\gamma = \frac{\left( {R_{a}^{\prime}/G_{a}^{\prime}} \right) - \left( {R_{2}/G_{2}} \right)}{\left( {R_{1}/G_{1}} \right) - \left( {R_{2}/G_{2}} \right)}},$where γ is the correction factor, R is the first primary color, B is thesecond primary color, G is the third primary color, 1 represents thelocation of the first color point, 2 represents the location of thesecond color point, a represents the location of the third color point,and ′ represents a location of the third color point with respect to aline in the plot connecting the location of the first color point andthe location of the second color point.
 19. A method for operating acamera device, the method comprising: causing a camera to acquire afirst image of a scene while the scene is being illuminated with a firstset of light sources, the first set of light sources for causing thefirst image to be associated with a first color point; causing thecamera to acquire a second image of the scene while the scene is beingilluminated with a second set of light sources, the second set of lightsources for causing the second image to be associated with a secondcolor point, different from the first color point; obtaining a thirdcolor point, the third color point associated with the scene not beingilluminated with the first set of light sources and not beingilluminated with the second set of light sources, each of the firstcolor point, the second color point, and the third color point having arespective location in a plot having a first axis and a second axis, thefirst axis indicating values of a ratio of a sum of at least a sub-setof pixel values of a first primary color to a sum of at least a sub-setof pixel values of a third primary color, and the second axis indicatingvalues of a ratio of a sum of at least a sub-set of pixel values of asecond primary color to the sum of at least the sub-set of pixel valuesof the third primary color; and generating a final image of the scenebased on a combination of the first image and the second image bycomputing a correction factor based on at least a value indicative ofthe location of the first color point, a value indicative of thelocation of the second color point, and a value indicative of thelocation of the third color point, generating a modified first image bymodifying each of pixel values of the first image by a first value basedon the correction factor, generating a modified second image bymodifying each of pixel values of the second image by a second valuebased on the correction factor, and generating the final image based onpixel values of the modified first image and pixel values of themodified second image.
 20. The method according to claim 19, wherein thefinal image is generated as a weighted combination of the first imageand the second image.